import Vue from 'vue'
import VueRouter from 'vue-router'

import store from '@/store'
import { Message } from 'element-ui'

Vue.use(VueRouter)

const router = new VueRouter({
  routes: [
    {
      path: '/',
      component: () => import('@/views/layout'),
      redirect: '/dashboard',
      children: [
        {
          path: 'dashboard',
          component: () => import('@/views/dashboard')
        },
        {
          path: '/article',
          component: () => import('@/views/article')
        }
      ]
    },
    {
      path: '/login',
      component: () => import('@/views/login')
    }
  ]
})

// 添加前置路由守卫
router.beforeEach((to, from, next) => {
  // 有没有 token
  // 这个项目可以非常简单, 因为除了登录页外, 没有任何白名单
  // if ()
  // 在非组件对象中, 如何获取 Vuex 的数据
  // 引入 store 对象, 就可以获取 store 中的数据
  // console.log(store)
  const token = store.state.user.token
  if (!token && to.path !== '/login') {
    // 提醒用户
    Message.warning('您还未登陆')
    return next('/login')
  }
  next()
})

export default router
